Package com.apps.services

Source Code of com.apps.services.UBCWayfindingService

/*
* AUTHOR: Kevin Lam
*/

package com.apps.services;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import com.apps.services.factory.GoogleLocationServiceFactory;
import com.apps.services.factory.UBCClassroomServiceFactory;
import com.apps.ubc.cc.model.BuildingModel;
import com.apps.utils.BookSearchUtils;

public class UBCWayfindingService {
 
    private GoogleLocationService gls = GoogleLocationServiceFactory.getGoogleLocationService();
    private UBCClassroomService crs = UBCClassroomServiceFactory.getUBCClassroomService();
 
    public UBCWayfindingService(){   
    }

    public BuildingModel search(String in) {
      BuildingModel result = null;
      try {
        result = parseURLContent(getURLContentReader(in, "bldgName"));
        if(result == null){
          result = parseURLContent(getURLContentReader(in, "keyword"));
        }
        if(result == null) {
          String crsResult = crs.search(in);
          if(crsResult != null) {
            String[] latlong = gls.getLatLong(crsResult + ", Vancouver");
            return new BuildingModel(in, crsResult, "",latlong[0], latlong[1]);
          }
        }
      } catch (IOException e) {
        e.printStackTrace();
      } catch (Exception e) {
        e.printStackTrace();
      }
      return result;
    }

    private BufferedReader getURLContentReader(String search, String field)
        throws Exception {
     
      String query = URLEncoder.encode(search,"UTF-8");
      String   url = "http://www.maps.ubc.ca/PROD/search_results.php?searchTerm="+query+"&Submit=Search&searchField="+field;
      return new BufferedReader(new InputStreamReader(
          new URL(url).openStream()));
    }

    private BuildingModel parseURLContent(BufferedReader br) throws IOException {
      BuildingModel bm = null;
      String name = "";
      String address = "";
      String pcode = "";
      String line = br.readLine();
      while (line != null) {
        if(line.contains("<td style=\"background:")) {
          name = line.substring(line.indexOf("<p>")+3,line.indexOf("</p>"));
          line = br.readLine();
          if(line!=null&&line.contains("<td style=\"background:")) {
            address = line.substring(line.indexOf("<p>")+3,line.indexOf("<br>"));
            pcode = line.substring(line.indexOf("<br>")+4,line.indexOf("</p>"));
            String[] latlong = gls.getLatLong(name + " " + pcode);
            bm = new BuildingModel(name, address, pcode, latlong[0], latlong[1]);
            break;
          }
        }
       
        line = br.readLine();
      }
      return bm;
    }
 

}
TOP

Related Classes of com.apps.services.UBCWayfindingService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.